

AUDIOGENIC LOADER 

--------------------------------------------------------------------------------

Can be found on... Exile, Loopz, World Cup Rugby, Impact, Emlyn Hughes Soccer.  

--------------------------------------------------------------------------------

Threshold : $013F (319) clock cycles (TAP byte $27).
Bit 0 : $1A
Bit 1 : $36
Endianess : MSbF
 
Pilot byte : $F0 (*4)
Sync byte : $AA 

Then...

1 byte    : Load Address MSB (low byte is always 00)
256 bytes : Data
1 byte    : Checksum (0 XOR all data bytes) 

Notes:- 

The files are typically chained one after another, each has pilot and sync but there 
is no pause between files of any single chain.

Tapes may contain several chains. 



The following file load addresses have special meaning to the loader...

CF00 - This is typically the very first block. The following data block needn't be consecutive.
0000 - Data in this block is present, but ignored (not loaded into memory). Loading stops after file is loaded and code is executed.
0100 - Data in this block is present, but ignored (not loaded into memory). Loading continues but the following data block needn't be consecutive.
0200 - Data in this block is present, but ignored (not loaded into memory). Loading stops after file is loaded and code is executed.

AUDIOGENIC VARIANT LOADER 

--------------------------------------------------------------------------------

Can be found on Special Agent and Strike Force Cobra.

--------------------------------------------------------------------------------

Differences:
* There are three types of pulses. 
                      Special Agent Strike Force Cobra
Bit 0..................~512.........~368
Bit 1.................~1088.........~816
Very long pulse.......~1360........~1448
Threshold 0-1...........712..........594
Threshold 1-very long..1256.........1151
(lengths are in clock cycles)
* Every block starts with a sequence of very long pulses (no less than 5 of
them, typically 30-31 of them), followed by 3 normal pulses (0s or 1s). After
that, comes the first byte of the block.
* In Special Agent (but not in Strike Force Cobra), empty blocks cannot start
with a 2 byte, only 0 and 1 are allowed
